/**
 * Author(s): xuming.Wong <xuming.Wong@gmail.com>
 */

#ifndef __PQ_GameWorldScene_H__
#define __PQ_GameWorldScene_H__

#include "GameScene.h"

#include "SkyEffect.h"

#include "SkyWaterEffect.h"
#include "BoidsManager.h"
#include "VegetationManager.h"

#include "PlayerController.h"

namespace PQClient
{
	/*The main game scene
	*/
	class GameWorldScene
		: public GameScene
	{
	public:
		GameWorldScene();

		void activate();

		/*Load the character select scene.
		*/
		void loadScene();

		void buttonClicked(UIScreen* sender,UIControlID id){}

		void update(float deltaT);

	protected:
		bool _uiLoaded;//

		//SkyEffect* _skyEffect;
		
		SkyWaterEffect* _waterManager;
		BoidsManager* _boidsManager;
		VegetationManager* _vegetationManager;

		PlayerController* _playerController;
	protected:
		bool keyPressed( const OIS::KeyEvent &evt );

		bool keyReleased( const OIS::KeyEvent &e );

		bool mouseMoved( const OIS::MouseEvent &e );
		bool mousePressed( const OIS::MouseEvent &e, OIS::MouseButtonID id );
		bool mouseReleased( const OIS::MouseEvent &e, OIS::MouseButtonID id );
		
	};

}
#endif
